首先声明:这一系列是本人阅读周志明老师的《深入理解Java虚拟机》第二版(希望每个人都买一本来阅读,你不知道对你有什么帮助,但是请相信一定是有帮助的)后自己做的个人总结,在这里记录我认为的重点。一方面是回顾学习内容加深理解,另一方面,是方便自己以后重新阅读《深入理解Java虚拟机》。
一:Java技术体系
从传统意义上来讲,Sun公司所定义的Java技术体系包括:
- Java程序设计语言
- 各种硬件平台上的Java虚拟机
- Class文件格式
- Java API类库
- 来至商业机构和开源社区的第三方Java类库
我们可以把Java程序设计语言,Java虚拟机,Java API类库这三部分统称为JDK(JAVA Development Kit),JDK是支持Java程序开发的最小环境。另外,我们把Java Se API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持程序运行的标准环境。
如果按照业务领域来划分Java技术系统,可分为下面四种:
- Java Card:支持一些小程序运行在小内存设备(如智能卡)上的平台。
- Java Me(Micro Edition):支持Java运行在移动终端上的平台。
- Java Se(Standard Edition):支持面向桌面级应用的Java平台。
- Java EE(Enterprise Edition):支持使用多层架构的企业应用的Java平台。
二:Java的发展历程
1995年5月23日,Java语言诞生;
1996年1月,第一个JDK-JDK1.0诞生;
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术;
1996年9月,约8.3万个网页应用了Java技术来制作;
1997年2月18日,JDK1.1发布;
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议纪录;
1997年9月,JavaDeveloperConnection社区成员超过十万;
1998年2月,JDK1.1被下载超过2,000,000次;
1998年12月8日,Java 2企业平台J2EE发布 (J2EE1.2);
1999年6月,SUN公司发布Java三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME);
2000年5月8日,JDK1.3发布;
2000年5月29日,JDK1.4发布;
2001年6月5日,Nokia宣布到2003年将出售1亿部支持Java的手机;
2001年9月24日,J2EE1.3发布;
2002年2月26日,J2SE1.4发布,此后Java的计算能力有了大幅提升;同年微软发布.NET Framework;
2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0;
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”: J2ME更名为Java ME, J2SE更名为Java SE, J2EE更名为Java EE;
2006年12月,SUN公司发布JRE6.0;
2009年12月,SUN公司发布Java EE 6;
2010年11月,由于甲骨文对Java社区的不友善,因此Apache扬言将退出JCP;
2011年7月,甲骨文发布Java SE 7;
2014年3月,甲骨文发表Java SE 8;
Java SE 9 Oracle宣布 2016年9月发布;
2017年9月21延期了好几次的Java9正式发布;
2018年3月20号发布了Java10;
2018年9月,预计发布Oracle长期支持版本Java11。。。。。。;
但是据统计,现在有82%的用户使用的还是Java8或者以下版本进行开发,感觉已经跟不上新版本发布的脚步了。
三:JVM的发展
1.Sun Classic / Exact VM
以今天的视角来看,Sun Classic VM的